#!/usr/bin/python
# -*- coding: utf-8 -*-
# @name             : 程序主文件
# @author           : OneYoung
# @create           : 2025/03/19
# @version          : v1.0
# @desc             : 执行测试用例,生成测试报告,并发送邮件及消息通知

import unittest
from application.settings import *
from utils.log_record import logger
from unittestreport import TestRunner


def execute():
    """ 执行测试用例,生成测试报告,并发送邮件及消息通知 """

    logger.info("******** TEST START ********")
    # 用例集
    discover = unittest.defaultTestLoader.discover(CASE_DIR, pattern="test*.py")
    # 执行测试用例,生成测试报告
    runner = TestRunner(discover, **REPORT_CONFIG)
    runner.run(**RUNNING_CONFIG)
    # 发送邮件
    if EMAIL_ENABLE:
        logger.info('发送测试报告邮件...')
        runner.send_email(**EMAIL_CONFIG)
    # 发送消息通知
    if DING_ENABLE:
        logger.info('发送钉钉消息...')
        runner.dingtalk_notice(**DING_CONFIG)
    if WECHAT_ENABLE:
        logger.info('发送企微消息...')
        runner.weixin_notice(**WECHAT_CONFIG)
    # 用例执行完成
    logger.info("********* TEST END *********")


if __name__ == '__main__':
    execute()  # 运行用例
